#pragma once

#include <cstdint>

struct ID3D10Device;
struct ID3D10Buffer;
struct ID3D10EffectTechnique;
struct ID3D10EffectMatrixVariable;
struct ID3D10EffectShaderResourceVariable;
struct ID3D10ShaderResourceView;

namespace D3D10Geometry
{
    class Sky
    {
    public:
        Sky();
        ~Sky();

        void init(ID3D10Device * const device, const float radius);

        void draw();

    private:
        Sky(const Sky& rhs);
        Sky& operator=(const Sky& rhs);

    private:
        ID3D10Device* mDevice;
        ID3D10Buffer* mVertexBuffer;
        ID3D10Buffer* mIndexBuffer;

        ID3D10ShaderResourceView *mCubeMap;
        
        uint32_t mNumIndices;
    };
}
